1. Technical Field
The present invention relates in general to the field of data processing systems and specifically, the field of storing data on data processing systems. Still more specifically, the present invention relates to a system and method for organizing data stored in data processing systems.
2. Description of the Related Art
In modern computer systems, a file system stores and organizes computer files to enable a user to efficiently locate and access requested files. File systems may utilize a storage device such as a hard disk drive to provide local access or provide access to data stored on a remote file server. A file system can also be characterized as a set of abstract data types that are implemented for the storage, hierarchical organization, manipulation, navigation, access, and retrieval of data.
The most familiar file systems utilize an underlying data storage device that offers access to an array of fixed-sized blocks, called “sectors”. The file system software is responsible for organizing these sectors into files and directories. The file system software also keeps track of which sectors are occupied and which are unused.
However, file systems do not need to make use of a storage device at all. A file system can be utilized to organize and represent access to any data, whether the data is stored or dynamically generated (e.g., from a network connection). Whether the file system has an underlying storage device or not, file systems typically have directories that associate file names with files, usually by connecting the file name to an index into a file allocation table (e.g., FAT in an MS-DOS file system or an inode in a Unix-like file system). Directory structures may be flat or may allow hierarchies where directories may include subdirectories. In some file systems, file names are structured, with special syntax for filename extensions and version numbers. In other file systems, file names are simple strings, and per-file metadata is stored elsewhere.
Other bookkeeping information is also associated with each file within a file system. The length of the data contained in the file may be stored as the number of blocks allocated for the file or as an exact byte count. The time that the file was last modified may be stored as a file's timestamp. Some file systems also store the file creation time, the time the file was last accessed, and the time the file's metadata was changed. Other information can include the file's device type (e.g., block, character, socket, subdirectory, etc.), the file's owner user-ID and group-ID, and the file's access permission settings (e.g., whether the file is read-only, executable, etc.).
While file systems enable a user to save, find, and/or access files within a computer system or network, the organization of the directory structure and the names of individual files may be altered. The altering of the directory structure and file names is usually manageable when only a single user has access to a particular directory structure within a computer. However, if more than one user has access to the directory structure, other users may have trouble finding the files after the directory structure and/or file names have been changed by a particular user.
Therefore, there is a need for a system and method for efficiently tracking changes made to a directory structure for convenient access to files within a data processing system.